package com.jdk.demo.objectOutputStream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

// 要序列化的对象的父类如果实现序列化接口，那么也会同时序列化其父类，反序列化时不会调用构造函数；没有实现的话就不会序列化父类，但是在反序列化的时候会调用父类中满足条件的无参构造方法进行创建对象，因为要实例化子类必须先实例化其父类
public class Test {

    public static void main(String[] args) throws Exception {
        ObjectOutputStream oops = new ObjectOutputStream(new FileOutputStream("E:/zsl/serializable.txt"));
        User user = new User("zhang san", 1);
        user.setPhoneNum("13888888888");
        oops.writeObject(user);
        ObjectInputStream oips = new ObjectInputStream(new FileInputStream("E:/zsl/serializable.txt"));
        Object object = oips.readObject();
        System.out.println(object);
    }

}